// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 连接数据库
const collection = cloud.database().collection('cardbag')
// 云函数入口函数
exports.main = async (event, context) => {
  let data = event.data
  
  // 检查该用户是是否已经存了这张身份证
  let exist =await collection.where({
    type:"IDCard",
    openid: data.openid,
    idNum: data.idNum,
  }).get()
  // 如果有
  if (exist.data.length > 0){
    // 删除多余的，因为逻辑上每个用户只有一张这个id的身份证
    if (exist.data.length > 1 ){
      exist.data.forEach(async (item,index)=>{
        index != 0 && await collection.doc(item._id).remove()
        index != 0 && await cloud.deleteFile({ fileList: [item.fileID]})
      })
    }

    
    // 覆盖
    let setResult = await collection.doc(exist.data[0]._id).set({
      data
    })
    // 删除原先的照片
    let deleteResult = null
    if (exist.data[0].fileID != data.fileID){
      deleteResult = await cloud.deleteFile({
        fileList: [exist.data[0].fileID]
      })
    }


    return {
      msg:"覆盖数据",
      setResult,
      deleteResult,
    }

  } else {
    // 如果没有
    let newResult = await collection.add({
      data
    })
    return {
      msg: "新数据",
      newResult,
    }
  }
  
}